home *** CD-ROM | disk | FTP | other *** search
/ ASME's Mechanical Engine…ing Toolkit 1997 December / ASME's Mechanical Engineering Toolkit 1997 December.iso / c_lang / varinc.lzh / PAGE61.C < prev    next >
C/C++ Source or Header  |  1979-11-30  |  2KB  |  42 lines

  1. /* Prompt for 3 long integer numbers and print their average. */
  2.  
  3. main()
  4.    {
  5.    double avg_3_longs(long, long, long);             /* Declare subfunction. */
  6.    long first, second, third;               /* Declare numbers prompted for. */
  7.    double average;                        /* Declare average of the numbers. */
  8.  
  9.    printf("Enter 3 numbers: ");
  10.  
  11.    /* Check scanf() return value for 3 good numbers. */
  12.    if (3 != scanf("%ld %ld %ld", &first, &second, &third))
  13.       printf("\nBad input data\7\n");
  14.    else                                    /* Input data are OK, so proceed. */
  15.       {
  16.       average = avg_3_longs(first, second, third);                  /* Call. */
  17.       printf("\nThe average of %ld, %ld, and %ld is %f.\n",
  18.         first, second, third, average);
  19.       }
  20.    }                                           /* end of the main() function */
  21.  
  22. /*****************************************************************************/
  23. /*  avg_3_longs() is a function that returns type double.                    */
  24. /*  The three parameters, all type long, are numbers to be averaged by       */
  25. /*  totaling them and dividing by 3.0.                                       */
  26. /*****************************************************************************/
  27.  
  28. double avg_3_longs(long_one, long_two, long_three)
  29.  
  30. /* Parameters MUST be declared BEFORE the function's starting {, as follows: */
  31. long long_one, long_two, long_three;          /* Declare 3 longs to average. */
  32.    
  33.    {
  34.  
  35.    /* Non-parameter variables MUST be declared AFTER the function's */
  36.    /*   starting {, as follows:                                     */
  37.    double average;                      /* Holds computed average to return. */
  38.  
  39.    average = ((long_one + long_two + long_three) / 3.0);
  40.    return (average);                              /* Return value to caller. */
  41.    }
  42.